// alias to prevent xgettext from picking up strings translated in GTK+
const gtk30_ = Gettext_gtk30.gettext;
+const NC_ = function(context, str) { return str; };
// in org.gnome.desktop.interface
const CLOCK_FORMAT_KEY = 'clock-format';
let dayBegin = _getBeginningOfDay(day);
let dayEnd = _getEndOfDay(day);
- let dayString;
+ let dayFormat;
let now = new Date();
if (_sameYear(day, now))
/* Translators: Shown on calendar heading when selected day occurs on current year */
- dayString = day.toLocaleFormat(C_("calendar heading", "%A, %B %d"));
+ dayFormat = Shell.util_translate_time_string(NC_("calendar heading",
+ "%A, %B %d"));
else
/* Translators: Shown on calendar heading when selected day occurs on different year */
- dayString = day.toLocaleFormat(C_("calendar heading", "%A, %B %d, %Y"));
+ dayFormat = Shell.util_translate_time_string(NC_("calendar heading",
+ "%A, %B %d, %Y"));
+ let dayString = day.toLocaleFormat(dayFormat);
this._addPeriod(dayString, 0, dayBegin, dayEnd, false, true);
},
RECEIVED: 'chat-received'
};
+const N_ = function(s) { return s; };
+
function makeMessageFromTpMessage(tpMessage, direction) {
let [text, flags] = tpMessage.to_text();
// Show only the time if date is on today
if(daysAgo < 1){
/* Translators: Time in 24h format */
- format = _("%H\u2236%M");
+ format = N_("%H\u2236%M");
}
// Show the word "Yesterday" and time if date is on yesterday
else if(daysAgo <2){
/* Translators: this is the word "Yesterday" followed by a
time string in 24h format. i.e. "Yesterday, 14:30" */
// xgettext:no-c-format
- format = _("Yesterday, %H\u2236%M");
+ format = N_("Yesterday, %H\u2236%M");
}
// Show a week day and time if date is in the last week
else if (daysAgo < 7) {
/* Translators: this is the week day name followed by a time
string in 24h format. i.e. "Monday, 14:30" */
// xgettext:no-c-format
- format = _("%A, %H\u2236%M");
+ format = N_("%A, %H\u2236%M");
} else if (date.getYear() == now.getYear()) {
/* Translators: this is the month name and day number
followed by a time string in 24h format.
i.e. "May 25, 14:30" */
// xgettext:no-c-format
- format = _("%B %d, %H\u2236%M");
+ format = N_("%B %d, %H\u2236%M");
} else {
/* Translators: this is the month name, day number, year
number followed by a time string in 24h format.
i.e. "May 25 2012, 14:30" */
// xgettext:no-c-format
- format = _("%B %d %Y, %H\u2236%M");
+ format = N_("%B %d %Y, %H\u2236%M");
}
} else {
// Show only the time if date is on today
if(daysAgo < 1){
/* Translators: Time in 24h format */
- format = _("%l\u2236%M %p");
+ format = N_("%l\u2236%M %p");
}
// Show the word "Yesterday" and time if date is on yesterday
else if(daysAgo <2){
/* Translators: this is the word "Yesterday" followed by a
time string in 12h format. i.e. "Yesterday, 2:30 pm" */
// xgettext:no-c-format
- format = _("Yesterday, %l\u2236%M %p");
+ format = N_("Yesterday, %l\u2236%M %p");
}
// Show a week day and time if date is in the last week
else if (daysAgo < 7) {
/* Translators: this is the week day name followed by a time
string in 12h format. i.e. "Monday, 2:30 pm" */
// xgettext:no-c-format
- format = _("%A, %l\u2236%M %p");
+ format = N_("%A, %l\u2236%M %p");
} else if (date.getYear() == now.getYear()) {
/* Translators: this is the month name and day number
followed by a time string in 12h format.
i.e. "May 25, 2:30 pm" */
// xgettext:no-c-format
- format = _("%B %d, %l\u2236%M %p");
+ format = N_("%B %d, %l\u2236%M %p");
} else {
/* Translators: this is the month name, day number, year
number followed by a time string in 12h format.
i.e. "May 25 2012, 2:30 pm"*/
// xgettext:no-c-format
- format = _("%B %d %Y, %l\u2236%M %p");
+ format = N_("%B %d %Y, %l\u2236%M %p");
}
}
- return date.toLocaleFormat(format);
+ return date.toLocaleFormat(Shell.util_translate_time_string(format));
},
appendTimestamp: function() {
#include <gdk/gdkx.h>
#include <X11/extensions/XTest.h>
+#include <locale.h>
#ifdef HAVE__NL_TIME_FIRST_WEEKDAY
#include <langinfo.h>
#endif
return week_start;
}
+/**
+ * shell_util_translate_time_string:
+ * @str: String to translate
+ *
+ * Translate @str according to the locale defined by LC_TIME; unlike
+ * dcgettext(), the translations is still taken from the LC_MESSAGES
+ * catalogue and not the LC_TIME one.
+ *
+ * Returns: the translated string
+ */
+const char *
+shell_util_translate_time_string (const char *str)
+{
+ const char *locale = g_getenv ("LC_TIME");
+ const char *res;
+
+ if (locale)
+ setlocale (LC_MESSAGES, locale);
+
+ res = gettext (str);
+
+ setlocale (LC_MESSAGES, "");
+
+ return res;
+}
+
/**
* shell_write_string_to_stream:
* @stream: a #GOutputStream